package com.tgit.sso.core.conf;

import com.tgit.sso.core.util.JedisUtil;

/**
 * @ClassName: SsoConfigurationStore
 * @Description: 配置信息，存储在redis中，供客户端SsoFilter使用
 * @author fzj读你
 * @date 2019/3/5 10:13
 */
public class SsoConfigurationStore {

    private SsoConfigurationStore() {}

    /**
     * 通过key值，获取redis中的配置项信息
     * @param key
     * @return
     */
    public static String get(String key) {
        String redisKey = redisKey(key);
        return JedisUtil.getStringValue(redisKey);
    }

    /**
     * 服务端启动、zk节点发生变化时，存入redis中的配置项信息
     * @param key
     * @param config
     */
    public static void put(String key, String config) {
        String redisKey = redisKey(key);
        JedisUtil.setStringValueNoExpire(redisKey, config);
    }

    /**
     * 删除redis中指定key的配置项
     * @param key
     */
    public static void remove(String key) {
        String redisKey = redisKey(key);
        JedisUtil.del(redisKey);
    }

    /**
     * 获取redis中存储的key
     */
    private static String redisKey(String key) {
        return SsoConf.SSO_CONFIGURATION.concat("##").concat(key);
    }
}
